Skip to content

Codex CLI 常用命令详解:从 /status、/model 到 /review

第一次进入 Codex 后,会发现除了直接输入自然语言之外,还可以输入很多:

text
/status
/model
/review
/init
...

这样的命令。

它们通常被称为:

text
Slash Commands
斜杠命令

如果说自然语言 Prompt 是:

text
告诉 Codex 要完成什么任务

那么 Slash Command 更像:

text
控制 Codex 当前怎么工作

可以简单理解成:

text
Prompt
→ 控制任务

Slash Command
→ 控制 Codex

这一篇就专门介绍 Codex CLI 中最值得掌握的常用命令,以及它们在实际开发中应该怎么使用。


1. Slash Command 是什么?

启动 Codex:

bash
codex

进入交互界面以后,可以直接输入:

text
/status

或者:

text
/model

这类以:

text
/

开头的命令。

它们并不是发送给模型的普通 Prompt。

例如:

text
帮我分析 UserService

这是:

text
Prompt

而:

text
/status

则是:

text
Codex CLI Command

两者负责的事情不同。

可以理解成:

text
┌──────────────────────────────┐
│          Codex CLI           │
├──────────────────────────────┤
│                              │
│ Prompt                       │
│                              │
│ 帮我分析 UserService         │
│                              │
│ → 给 Coding Agent 的任务     │
│                              │
├──────────────────────────────┤
│                              │
│ Slash Command                │
│                              │
│ /status                      │
│ /model                       │
│ /review                      │
│                              │
│ → 控制 Codex CLI             │
│                              │
└──────────────────────────────┘

所以使用 Codex 时,实际上存在两套交互方式:

text
自然语言
+
Slash Commands

2. 先学会 /help

如果刚开始使用 Codex,第一个应该知道的命令不是:

text
/model

也不是:

text
/review

而是:

text
/help

它的作用非常简单:

查看当前 Codex CLI 版本支持哪些命令和功能。

为什么这个命令很重要?

因为 Codex CLI 还在快速迭代。

你在网上看到:

text
某篇博客
某个 GitHub Issue
某个视频教程
某篇官方文档

里面出现的命令,不一定与你当前安装的版本完全一致。

可能出现:

text
旧版本存在
新版本改名

或者

新版本新增
旧版本没有

所以最可靠的方法永远是:

text
/help

查看:

text
当前版本

真正支持什么。

可以把它理解成:

text
不知道命令

先 /help

这也是使用 Codex CLI 最值得养成的第一个习惯。


3. /status:查看当前 Codex 状态

第二个非常重要的命令是:

text
/status

它用于查看:

当前 Codex Session 的运行状态。

例如可能看到类似:

text
Model:                gpt-5.6-sol
Directory:            ~/IdeaProjects/xxx
Permissions:          Workspace
Agents.md:            AGENTS.md
Account:              xxx@example.com
Collaboration mode:   Default

不同 Codex CLI 版本显示内容可能有所不同,但一般值得关注:

text
Model
Directory
Permissions
Agents.md
Account
Collaboration mode
Usage

其中最重要的是:

text
Directory
Permissions
Agents.md
Model

4. /status 为什么这么重要?

假设你准备让 Codex 修改:

text
~/IdeaProjects/payment-server

结果执行:

text
/status

发现:

text
Directory: ~

那就应该警惕了。

因为这意味着:

text
Codex 当前工作目录

可能不是你的项目目录。

正确状态应该更接近:

text
Directory: ~/IdeaProjects/payment-server

再比如:

text
Agents.md: <none>

说明当前 Session 没有识别到对应的:

text
AGENTS.md

如果你本来已经给项目写好了开发规范,就需要检查:

text
是不是启动目录不对?
AGENTS.md 是否放在正确目录?
当前 Session 是否识别到了?

所以:

text
/status

不仅仅是“看看信息”。

它实际上是一个:

text
环境检查命令

5. 每次进入陌生项目,先执行 /status

我比较推荐一个习惯。

启动:

bash
cd xxx-server
codex

之后不要马上输入任务。

先:

text
/status

确认:

text
① Directory 对不对
② Model 对不对
③ Permissions 对不对
④ AGENTS.md 有没有加载
⑤ 当前模式是否符合预期

可以把这个动作理解成:

text
使用 Codex 前的 pre-flight check

类似开发之前先看:

bash
git status

使用 Codex 时先看:

text
/status

两个习惯都很有价值。


6. /model:选择当前使用的模型

Codex 的核心仍然是模型。

不同模型可能在:

text
推理能力
代码能力
速度
Token 消耗
上下文能力
Agent 能力

方面有所区别。

因此 Codex 通常提供模型选择能力。

可以通过对应的 Model 命令或交互入口查看当前可以使用的模型。

例如:

text
/model

然后选择当前 Session 使用的模型。

具体可选模型取决于:

text
Codex CLI 版本
账户类型
当前产品策略
模型开放情况

因此不要把某个具体模型列表写死。

最可靠的方式是:

text
/model

查看当前真正可以使用的模型。


7. 模型应该怎么选?

新手很容易陷入一个误区:

text
永远选择最强模型

但实际开发并不一定需要这样。

可以粗略按照任务复杂度理解。

简单任务:

text
查找某个类
解释一段代码
修改变量名
增加简单字段
写简单测试

更关注:

text
速度

复杂任务:

text
跨模块重构
架构分析
复杂 Bug
并发问题
数据库一致性
大型 Code Review

更关注:

text
推理能力

可以简单理解成:

text
简单任务
→ 快速模型

复杂任务
→ 强推理模型

但不要脱离实际模型讨论“哪个最好”。

最重要的还是:

text
任务复杂度
+
模型实际表现
+
Token / Usage 成本

8. Reasoning Effort 是什么?

除了选择模型之外,一些 Codex 模型还可能提供:

text
Reasoning Effort

可以理解成:

允许模型在回答之前投入多少推理资源。

常见概念可能类似:

text
Low
Medium
High

可以粗略理解:

text
Low
→ 思考少
→ 响应快

Medium
→ 平衡

High
→ 思考更多
→ 更适合复杂问题

例如:

text
把 UserService 的变量 userInfo 改成 user

通常没必要:

text
High Reasoning

但如果任务是:

text
分析为什么高并发下偶尔出现余额重复扣减,
涉及 MySQL 事务、Redis 锁和 MQ 重试。

就更值得使用较高的推理强度。


9. 不要所有任务都使用 High Reasoning

这是另一个常见误区。

很多人觉得:

text
High
=
更聪明
=
任何时候都应该 High

实际上不一定。

如果只是:

text
增加一个 DTO
修改一个枚举
查找一个方法
增加一个 null 判断

模型根本不需要进行复杂推理。

反而可能导致:

text
响应更慢
消耗更多
简单问题复杂化

所以更合理的方式是:

text
简单任务
→ Low

一般开发
→ Medium

复杂架构 / Bug / Review
→ High

当然这仍然只是:

text
调试起点

不是固定标准。


10. Permissions:Codex 到底可以做什么?

Coding Agent 和普通聊天 AI 最大的区别是:

text
Codex 可以执行操作

例如:

text
读取文件
修改文件
运行 shell
执行 Maven
执行 npm
查看 Git
运行测试

因此必须存在:

text
Permission

也就是权限控制。

在:

text
/status

中可能看到:

text
Permissions: Workspace

它表示当前 Codex 被允许操作到什么程度。

不同版本的 Codex CLI 可能提供不同权限模式,所以具体名称应该以:

text
/help
/status

显示为准。


11. 为什么 Coding Agent 必须有权限控制?

假设 Codex 只能:

text
读代码

风险其实比较低。

但如果它可以:

bash
rm -rf
git reset --hard
git push
kubectl delete
mysql
ssh
curl

情况就完全不同了。

Coding Agent 本质上拥有:

text
AI 推理能力
+
Shell 能力
+
文件修改能力

所以权限越高:

text
能力越强

同时:

text
风险越高

这就是 Permission 存在的意义。


12. Workspace 权限怎么理解?

如果 /status 中看到:

text
Permissions: Workspace

可以简单理解成:

Codex 主要在当前工作区范围内执行操作。

这类模式通常比较适合日常开发。

例如允许:

text
读取项目代码
修改项目文件
运行测试
查看 Git Diff

但对于超出工作区或具有明显风险的操作,可能需要进一步确认。

对于刚开始使用 Codex 的开发者:

text
Workspace

通常比一上来给非常宽松的权限更容易控制风险。


13. 什么操作应该特别谨慎?

尤其是下面这些命令:

bash
rm
git reset --hard
git clean
git push
docker rm
kubectl delete
kubectl apply
mysql
psql
ssh
scp

以及:

text
修改生产配置
访问生产数据库
调用生产写接口
删除 Migration
修改 CI/CD
发布线上服务

最好不要让 Agent 在没有明确确认的情况下自动执行。

可以直接写入:

text
AGENTS.md

例如:

markdown
## Safety

未经明确授权:

- 不允许执行 git push
- 不允许执行 git reset --hard
- 不允许删除数据库 migration
- 不允许访问生产数据库
- 不允许执行 kubectl 修改命令
- 不允许修改生产环境配置

这样:

text
Permission
+
AGENTS.md

共同构成 Agent 的安全边界。


14. /init:初始化 AGENTS.md

上一篇已经介绍过:

text
AGENTS.md

它可以理解成:

text
给 Coding Agent 的项目开发规范

Codex 提供:

text
/init

这样的初始化工作流。

它的主要用途就是:

text
分析当前项目

生成 AGENTS.md 初始内容

第一次进入一个没有 Agent 配置的项目时,可以尝试:

text
/init

然后再人工修改。


15. 为什么 /init 生成以后还要人工修改?

因为 Codex 能从代码中推断的主要是:

text
技术栈
目录结构
构建方式
测试框架
代码风格

例如它可能发现:

text
Java 17
Spring Boot
Maven
MyBatis-Plus
JUnit

但是它很难知道:

text
某张表不能直接修改
某个接口必须兼容旧 App
某个字段已经废弃但不能删除
生产环境禁止执行某些操作
团队要求 Controller 不能直接返回 Entity

这些属于:

text
隐含业务知识

必须由开发者补充。

因此:

text
/init

更应该理解为:

text
生成 AGENTS.md 草稿

而不是:

text
自动生成最终开发规范

16. /review:让 Codex 帮你做 Code Review

这是 Codex 非常值得使用的一项能力。

我们平时写完代码通常会:

bash
git diff

自己检查修改。

但现在还可以增加一层:

text
Codex Review

例如通过当前版本提供的 Review 能力,对代码变更进行审查。

Review 的核心目的不是:

text
继续修改代码

而是:

text
寻找问题

例如:

text
空指针
边界条件
并发问题
事务问题
数据一致性
性能问题
安全问题
向后兼容问题

17. Code Review 和“帮我看看代码”有什么区别?

下面这种 Prompt:

text
帮我看看代码有没有问题

太模糊。

更推荐:

text
Review 当前修改。

重点检查:

1. 空指针
2. 并发问题
3. MySQL 事务
4. BigDecimal 精度
5. Redis 一致性
6. SQL 性能
7. 向后兼容

不要修改代码,只输出问题。

这样模型知道:

text
当前角色
=
Reviewer

而不是:

text
Implementer

这是一个很重要的区别。


18. 推荐的 Code Review 工作流

例如 Codex 完成一个需求:

text
实现用户余额冻结功能。

修改完成以后:

text
Implement

Test

Review

Developer Review

可以进一步让 Codex:

text
Review 当前 Git Diff。

重点检查:

1. 是否存在余额重复冻结
2. 是否存在并发问题
3. 是否存在事务不一致
4. 解冻操作是否幂等
5. 异常情况下是否会产生脏数据
6. 是否影响旧接口

不要修改代码。

这相当于让同一个 Coding Agent:

text
第一轮
→ 开发者

第二轮
→ Reviewer

不过需要注意:

AI Review 不能替代人工 Review。

因为:

text
写代码的模型
+
Review 代码的模型

仍然可能拥有相同的理解盲区。

所以最终最好仍然:

bash
git diff

人工确认。


19. /compact:上下文太长怎么办?

使用 Codex 时间长了以后,会话会越来越长。

例如:

text
分析项目

讨论方案

修改代码

运行测试

修 Bug

继续讨论

再次修改

上下文中可能已经包含大量:

text
代码
日志
命令输出
历史讨论
测试结果

这时候就涉及:

text
Context

问题。

一些 Codex CLI 版本提供类似:

text
/compact

的能力,用于压缩当前会话上下文。

可以简单理解:

text
完整历史

提炼重要信息

压缩上下文

继续工作

它的目的不是:

text
清空记忆

而更接近:

text
把长上下文总结以后继续使用

20. 为什么需要 Compact?

假设一个 Session 已经工作很久。

里面包含:

text
几百次文件读取
大量 Maven 日志
多个 Git Diff
多轮 Prompt
测试输出

实际上很多内容已经没有必要继续完整保留。

例如:

text
第一次 mvn test 的失败日志

问题已经修复以后,就不一定还需要完整保留。

因此可以:

text
原始上下文
100%

Compact

保留关键状态
继续工作

这样可以减少无关历史对后续任务的干扰。


21. 什么时候应该考虑 Compact?

比较典型的情况:

text
Session 已经非常长
Codex 开始遗忘早期重点
历史日志很多
已经完成一个阶段
准备进入下一阶段

例如:

text
阶段一:分析支付系统

阶段二:完成重构

阶段三:准备补测试

在:

text
阶段二 → 阶段三

之间就可以考虑压缩上下文。


22. /new:什么时候应该开新 Session?

有时候:

text
Compact

还不够。

因为你准备做的已经是:

text
完全不同的任务

例如当前 Session 一直在处理:

text
充值模块

现在突然要:

text
重构直播 IM 模块

两个任务几乎没有关系。

这时候继续使用原来的 Context 反而可能产生干扰。

更合理的是:

text
New Session

也就是开启一个新的任务上下文。

具体命令名称可能随版本变化,可以通过:

text
/help

查看当前版本是否提供:

text
/new

或对应的新会话能力。


23. Compact 和 New 有什么区别?

可以这样理解:

text
Compact
→ 还是同一个任务
→ 只是上下文太长了

New
→ 已经是另一个任务
→ 不需要继承旧上下文

例如:

text
分析支付

修改支付

测试支付

继续优化支付

适合:

text
Compact

而:

text
支付模块完成

开始研究直播模块

更适合:

text
New

24. Plan 不一定等于 /plan

上一篇我们介绍了:

text
Plan First

很多人会自然地寻找:

text
/plan

但这里需要区分:

text
Plan

这个概念和:

text
/plan

这个具体命令。

Codex 的具体 Slash Command 和 Collaboration Mode 会随着版本变化。

所以不要形成:

text
没有 /plan
=
Codex 不能 Plan

这样的误解。

即使当前版本没有某个固定的 /plan 命令,也可以直接告诉 Codex:

text
先分析这个需求。

不要修改代码。

请:

1. 分析当前实现
2. 找出涉及文件
3. 给出修改方案
4. 分析风险
5. 给出测试方案

完成以后停止,不要开始修改。

本质上仍然是在:

text
Plan

25. Plan 什么时候最有价值?

如果只是:

text
增加一个字段
修改一个变量
增加一个 null 判断
修复简单拼写

没必要进行复杂规划。

但如果任务涉及:

text
数据库结构修改
支付逻辑
钱包逻辑
并发控制
事务
接口兼容
跨模块重构
认证系统
复杂 Bug
架构调整

就非常值得:

text
先 Plan
再 Implement

可以把任务分成:

text
Understand

Plan

Implement

Test

Review

而不是:

text
Prompt

直接开始改

26. Plan Prompt 怎么写?

可以直接使用下面这种模板:

text
分析这个需求,先不要修改代码。

目标:

实现用户余额冻结功能。

请先完成:

1. 找到当前余额数据结构
2. 找到所有余额扣减入口
3. 找到提现逻辑
4. 找到充值逻辑
5. 分析事务边界
6. 分析并发控制
7. 给出实现方案
8. 列出需要修改的文件
9. 给出测试方案
10. 分析向后兼容风险

完成以后停止,不要修改文件。

等方案确认以后,再告诉它:

text
按刚才的方案实施。

要求:

1. 不修改现有 API
2. 不改变旧业务行为
3. 不提交 Git
4. 完成后运行相关测试
5. 最后检查 git diff

这就是很典型的:

text
Plan
→ Implement

工作流。


27. /status/model/review 应该怎么组合?

假设现在要修复一个复杂 Bug。

首先进入项目:

bash
cd xxx-server
codex

先执行:

text
/status

确认:

text
目录
模型
权限
AGENTS.md

然后根据任务复杂度选择合适模型:

text
/model

接下来先分析:

text
分析用户余额偶尔重复扣减的问题。

先不要修改代码。

重点检查:

1. MySQL 事务
2. Redis 锁
3. MQ 重试
4. 接口重复请求
5. 幂等机制

方案确认以后:

text
按方案修复。

完成后运行相关测试。

修改完成以后:

text
/review

或者使用 Review Prompt:

text
Review 当前 Git Diff。

重点检查:

1. 是否真的解决重复扣减
2. 是否引入死锁
3. 是否存在锁失效问题
4. 是否破坏原有业务
5. 是否存在新的并发风险

不要修改代码。

最终再人工:

bash
git diff
git status

整个流程就是:

text
/status

/model

Plan

Implement

Test

/review

Developer Review

28. Codex CLI 常用命令可以怎么分类?

不需要死记每一个命令。

更容易理解的方式是按照用途分类。

text
Codex CLI

├── 状态
│   ├── /help
│   └── /status

├── 模型
│   └── /model

├── 项目
│   └── /init

├── 工作流
│   ├── Plan
│   └── /review

├── 上下文
│   ├── /compact
│   └── /new

└── 权限
    └── Permissions

不同版本可能存在:

text
增加
删除
改名
调整入口

所以分类思想比背命令更重要。


29. 新手真正需要记住哪些命令?

如果刚开始使用,其实没有必要记很多。

第一阶段只需要掌握:

text
/help
/status
/model
/init
/review

再理解:

text
Plan
Permissions
AGENTS.md

就已经可以完成大多数基础开发任务。

可以简单记:

命令 / 概念作用
/help查看当前版本有什么能力
/status查看当前 Session 状态
/model查看或调整当前模型
/init初始化项目 Agent 指令
/review对当前代码修改进行 Review
/compact压缩较长的上下文
/new开启新的任务上下文
Plan复杂任务先规划再执行
Permissions控制 Codex 可以执行什么
AGENTS.md告诉 Codex 项目规则

30. 一个推荐的 Codex CLI 日常流程

实际开发中,我更推荐固定成下面这套流程:

text
① cd 项目

② codex

③ /status

④ 确认 AGENTS.md

⑤ 选择合适模型

⑥ 描述任务

⑦ 复杂任务先 Plan

⑧ Implement

⑨ Test

⑩ Review

⑪ git diff

⑫ 人工确认

注意:

text
Codex Review

和:

text
人工 Review

并不是二选一。

更合理的是:

text
Codex Review
+
Developer Review

AI 先帮助我们发现一部分问题。

最终仍然由开发者负责代码质量。


31. 不要把 Slash Command 当成 Codex 的核心

学习 Codex CLI 时很容易变成:

text
今天学 /status
明天学 /review
后天学 /compact

最后背了一堆命令,却仍然不会很好地使用 Coding Agent。

真正重要的其实是:

text
如何定义任务
如何控制范围
如何让 Agent 理解项目
如何规划复杂需求
如何验证修改
如何控制权限
如何 Review

Slash Commands 只是:

text
工具

而真正的核心是:

text
Agent Workflow

32. 最后怎么记?

如果只记几个命令:

text
/help
→ 我现在能用什么?

/status
→ 我现在是什么状态?

/model
→ 我现在用什么模型?

/init
→ 这个项目怎么让 Agent 快速理解规则?

/review
→ 当前修改有没有问题?

/compact
→ 上下文太长怎么办?

/new
→ 我要开始另一个任务怎么办?

然后再记三个核心概念:

text
AGENTS.md
→ 项目规则

Plan
→ 先想清楚

Permissions
→ 控制执行边界

最后记住一条真正重要的 Codex 工作流:

text
Status

Understand

Plan

Implement

Test

Review

也就是:

text
先确认环境
再理解问题
复杂任务先规划
然后修改代码
自动运行测试
最后进行 Review

Codex CLI 真正提高效率的地方,并不是:

text
少敲几个命令

而是把过去需要开发者手动完成的大量工作:

text
查代码
找调用链
分析影响范围
改多个文件
执行测试
检查 Diff
Code Review

逐渐组合成一个完整的:

text
Agent Workflow

当你开始习惯这种工作方式以后,Codex 就不再只是:

text
终端里的 ChatGPT

而会真正变成:

text
能够参与整个软件开发流程的 Coding Agent